home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / Libraries / Aidan's Class Libraries / Source / Messenger Classes / Messenger.cpp < prev    next >
Encoding:
Text File  |  1997-05-24  |  849 b   |  45 lines  |  [TEXT/CWIE]

  1. //Copyright (c) 1997 Aidan Cully
  2. //All rights reserved
  3.  
  4. #include "CLMessenger.h"
  5. #include "CLReceiver.h"
  6.  
  7. MMessenger::~MMessenger()
  8. {
  9.     mReceivers.MoveLast();
  10.     while( mReceivers.Remove() )
  11.         ;
  12. }
  13.  
  14. Boolean MMessenger::AddReceiver( MReceiver *receiver )
  15. {
  16.     mReceivers.MoveFirst();
  17.     if( !mReceivers.AddPrev( receiver ) )
  18.         return( false );
  19. }
  20.  
  21. void MMessenger::SendMessage( TMessage *message )
  22. {
  23.     MReceiver *receiver;
  24.  
  25.     if( !mReceivers.MoveFirst() )
  26.         return;
  27.     do {
  28.         mReceivers.GetData( receiver );
  29.         receiver->ReceiveMessage( message );
  30.     } while( mReceivers.MoveNext() );
  31. }
  32.  
  33. void MMessenger::SendMessage( UINT32 message )
  34. {
  35.     MReceiver *receiver;
  36.     TMessage *msg= new TMessage( message );
  37.  
  38.     if( !mReceivers.MoveFirst() )
  39.         return;
  40.     do {
  41.         mReceivers.GetData( receiver );
  42.         receiver->ReceiveMessage( msg );
  43.     } while( mReceivers.MoveNext() );
  44.     delete msg;
  45. }